package com.deductive.common.core.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.List;

/**
 * 支持 GeoJSON 的 BaseMapper
 * 
 * @author ruoyi
 */
public interface GeoJsonBaseMapper<T> extends BaseMapper<T> {

    /**
     * 查询列表并自动转换 GeoJSON 字段
     * 
     * @param queryWrapper 查询条件
     * @return 实体列表
     */
    @Select("${ew.customSqlSegment}")
    List<T> selectListWithGeoJson(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);

    /**
     * 根据 ID 查询并自动转换 GeoJSON 字段
     * 
     * @param id 主键ID
     * @return 实体
     */
    @Select("${ew.customSqlSegment}")
    T selectByIdWithGeoJson(@Param("id") Object id);
}
